import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase representa a un boton que requiere el menu de juego.
 * @author Miguel Martinez Aguilar
 * @version 04 de abril de 2013
 */
public class InicioJuego extends Boton
{
    // Declaracion de variables de instancia
    private int tipo;// es el tipo de boton.
    MenuJuego menu;// es el menu de juego.

    /**
     * Este es el metodo constructor del boton de juego.
     * @param imagen: el nombre principal de las imagenes que este boton usara.
     * @param tipo: un numero que representa el tipo de boton que sera.
     * @param menu: el objeto MenuJuego al que hara referencia este boton.
     */
    public InicioJuego(String imagen, int tipo, MenuJuego menu)
    {
        super(imagen + "0.png",imagen + "1.png",imagen + "2.png");
        this.tipo = tipo;
        this.setImage(img[0]);
        this.menu = menu;
    }
    
    /**
     * Este metodo realiza lo que el boton debe hacer una vez precionado.
     */
    public void ejecuta()
    {
        if(tipo == 0){
            menu.cambiaMenu(true);
            menu.agregaMenuJuego();
        }
        if(tipo == 1){
            menu.cambiaMenu(false);
            menu.agregaMenuNiveles();
        }
        if(tipo == 2)menu.menuPrincipal();
        if(tipo == 3)this.creaJuego(false);
        if(tipo == 4)this.creaJuego(true);
    }
    
    /**
     * Este metodo crea un panel que dirigira el juego.
     * @param niveles: boleano que indica si se le pediran jugadores al menu niveles.
     */
    public void creaJuego(boolean niveles)
    {
        if(niveles)menu.pideJugadores();
        if(menu.hayJugadores(niveles)){
            ScrollWorld mundo = super.getWorld();// este metodo nos permite acceder al mundo
            Movedor movedor = new Movedor();
            mundo.addObject(movedor, 350, 250);
            movedor.preparar();
            Panel panel = new Panel(menu.jugador1(niveles),menu.jugador2(niveles),movedor,menu.puerta(),menu.niveles());
            menu.quitarBotones(false);
            mundo.addObject(panel, 668, 56);
            panel.preparaJuego();
        }
    }
}
